package demo923;

import java.io.*;
import java.nio.Buffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
import java.util.function.IntFunction;
import java.util.function.Predicate;
import java.util.stream.Stream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

public class demo3 {
    public static void main(String[] args) throws IOException, ClassNotFoundException {

        //将文件夹解压缩
        File zPath=new File("D:\\bbb.zip");//压缩包的路径
        File uzPath=new File("D:\\");//解压后的路径
        unzip(zPath,uzPath);



    }
    //写个方法
    public static void unzip(File zPath,File uzPath) throws IOException {
        //创建解压缩流
        ZipInputStream zip=new ZipInputStream(new FileInputStream(zPath));
        //创建Zipntry对象
        ZipEntry entry;
        while((entry=zip.getNextEntry())!=null){
            if(entry.isDirectory()){
                //是文件夹，就创建相同的文件夹
                File files=new File(uzPath,entry.getName());
                files.mkdirs();
            }else{
                //是文件
                //如果是文件的话就要创建，同时还要把数据给读写
                FileWriter writer=new FileWriter(new File(uzPath,entry.getName()));//将文件写+创建到目的文件夹下
                int len;
                while((len=zip.read())!=-1){
                    writer.write(len);
                }
                //关闭输出流
                writer.close();
            }
            //一个文件处理结束要关闭资源
            zip.closeEntry();

        }
        //关闭整个解压缩流
        zip.close();


    }




}
